import {
    @ButtonProperty,
    @CheckboxProperty,
    Color,
    @ColorProperty,
    @PercentSliderProperty,
    @SelectorProperty,
    @SwitchProperty,
	@SliderProperty,
    @TextProperty,
    @Vigilant,
    @NumberProperty,
    @ParagraphProperty,
} from './vigilance';


@Vigilant('QuickCommandConfig', '§6快捷指令 功能设置')
class Settings {
    constructor() {
        this.initialize(this);
    }

    @SwitchProperty({
        name: '在gui内 "Ctrl + c" 复制所指物品的NBT到剪贴板',
        description: '可以让你看到很多直接看看不到的物品信息,方便mod和ct module开发(也许吧)',
        category: '快捷键',
    })
    CopyNBT = false;

    @SwitchProperty({
        name: '锁定物品',
        description: '在Skyblock内背包里指向物品时按按键锁定或解锁物品. 锁定后在skyblock内会防止丢弃此物品. 需要物品有uuid',
        category: 'Quick Command',
    })
    itemLock = false;

    @SwitchProperty({
        name: '打开游玩菜单',
        description: '不在Skyblock但在Hypixel时\n也可以直接 /play 打开这个菜单\n菜单来自此module\n/play (游戏名) 属于hypixel自带指令',
        category: 'Quick Command',
    })
    qcplay = false;

    @SwitchProperty({
        name: '跟随 小队成员 / co-op 前往一个房间',
        description: '仅在出现消息后的20秒内,然后这条跟随指令就不能用了',
        category: 'Quick Command',
    })
    qcfollow = false;

    @SwitchProperty({
        name: '接听电话(Abiphone)',
        description: '执行的指令在来电话后获取',
        category: 'Quick Command',
    })
    qccall = false;

    @SwitchProperty({
        name: '执行一分钟内的上一条ah提示的点击指令',
        description: '执行的指令在出现ah提示消息后获取\n一般是你的东西卖出去的提示',
        category: 'Quick Command',
    })
    qcah = false;

    @SelectorProperty({
        name: '花园内快捷指令',
        description: '在花园时打开desk. 在参与农业竞赛时 "/warp garden"',
        category: 'Quick Command',
        options: ['关闭','在任何时候都打开desk','在农业竞赛时"/warp garden"','在任何时候"/warp garden"'],
    })
    gardenquickcommand = 0;

    @SwitchProperty({
        name: '拿着鱼竿时打开鱼饵袋',
        description: '执行指令"/fishingbag"',
        category: 'Quick Command',
    })
    qcfishingbag = false;

    @SelectorProperty({
        name: '拿着弓时',
        description: '打开箭袋 /quiver 打开护符包 /accessorybag',
        category: 'Quick Command',
        options: ['都不打开','打开箭袋','打开护符包'],
    })
    qcbow = 0;

    @SwitchProperty({
        name: '地牢 / kuudra 结束时重开',
        description: '执行指令"/instancerequeue"',
        category: 'Quick Command',
    })
    instanceRequeue = false;

    @SwitchProperty({
        name: '在Kuudra里时打开衣柜',
        description: '执行指令"/wardrobe"',
        category: 'Quick Command',
    })
    kuudraWardrobe = false;

    @SwitchProperty({
        name: '在水晶矿洞返回晶核',
        description: '执行指令"/warp nucleus"',
        category: 'Quick Command',
    })
    CrystalNucleus = false;

    @SwitchProperty({
        name: '冰川矿井取出绳索',
        description: '直接按执行指令"/gfs ASCENSION_ROPE 1"\n蹲下按执行指令"/warp camp"',
        category: 'Quick Command',
    })
    mineshaft = false;

    @SwitchProperty({
        name: '矮人矿洞(冰洞)回营地',
        description: '执行指令"/warp camp"',
        category: 'Quick Command',
    })
    basecamp = false;

    @TextProperty({
        name: `默认命令(无需"/"开头)`,
        description: "上面那些都不符合时执行",
        category: "Quick Command"
    })
    qcdefault = "sbmenu";

    //轮盘
    @SwitchProperty({
        name: '使快捷指令在按键释放时执行',
        description: '开启后在按下按钮时获取准备执行的指令,松开按键后执行',
        category: '指令轮盘',
    })
    commandOnRelease = false;

    @SwitchProperty({
        name: '指令轮盘',
        description: '开启后在按下按钮时会打开指令轮盘,松开按键后执行鼠标所指的指令',
        category: '指令轮盘',
    })
    commandGui = false;

    @ParagraphProperty({
        name: '轮盘指令 #1 (左上)',
        description: '第一行为指令集描述   若只有一行则会视为指令\n第二行开始为指令,每行为一条指令. "/" 开头将会只在客户端侧执行',
        category: '指令轮盘',
    })
    GuiCommand1 = "打开衣柜\nwardrobe";

    @ParagraphProperty({
        name: '轮盘指令 #2 (左下)',
        description: '第一行为指令集描述   若只有一行则会视为指令\n第二行开始为指令,每行为一条指令. "/" 开头将会只在客户端侧执行',
        category: '指令轮盘',
    })
    GuiCommand2 = "宠物菜单\npetmenu";

    @ParagraphProperty({
        name: '轮盘指令 #3 (右上)',
        description: '第一行为指令集描述   若只有一行则会视为指令\n第二行开始为指令,每行为一条指令. "/" 开头将会只在客户端侧执行',
        category: '指令轮盘',
    })
    GuiCommand3 = "拍卖行\nah";

    @ParagraphProperty({
        name: '轮盘指令 #4 (右下)',
        description: '第一行为指令集描述   若只有一行则会视为指令\n第二行开始为指令,每行为一条指令. "/" 开头将会只在客户端侧执行',
        category: '指令轮盘',
    })
    GuiCommand4 = "集市\nbz";
}

export default new Settings();
